package day12.Annotation;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

class Runner {
    public static void run(Class c){
        try {
            Object obj = (A)c.newInstance();
            //获得所有可见方法，私有的不处理
            Method[] methods = c.getMethods();
            for (Method m: methods) {
                // 从方法m获取Test注解
                // 如果没有，得到null
                Test test = m.getAnnotation(Test.class);
                if(test != null){
                    System.out.println("测试id"+test.id());
                    System.out.println("测试名称:"+test.value());
                    try { //如果invoke失败，执行下一个方法
                        m.invoke(obj); //反射调用
                    } catch (Exception e) {
                        System.out.println("这个方法执行失败");
                    }
                }

            }
        } catch (Exception e) {
            System.out.println("运行失败");
        }
    }
}
